package cn.com.seederland.gkrpc.server;

import cn.com.seederland.gkrpc.Request;
import cn.com.seederland.gkrpc.common.utils.ReflectionUtils;

/**
 * @ClassName ServiceInvoke
 * @Author SighFate
 * @Date 2020/10/07 0:30
 * @Version 1.0
 * @Description 方法的具体执行
 */
public class ServiceInvoke {

    /**
     * 具体的服务调用
     * @param serviceInstance 服务调用的类
     * @param request 调用请求
     * @return 服务调用结果
     */
    public Object invoke(ServiceInstance serviceInstance, Request request){
        return ReflectionUtils.invoke(serviceInstance.getTarget(), serviceInstance.getMethod(), request.getParameters());
    }
}
